package com.yunji.storage.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunji.common.annotation.Excel;
import com.yunji.common.base.BaseDTO;
import com.yunji.storage.domain.StockTakeInfoDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Project: yunji-coffee
 * @Package: com.yunji.storage.vo
 * @Title: StockTakeVO
 * <p>
 * History:
 * Date                     Version     Author          Summary
 * ============================================================
 * 2024-08-30 14:13:49      V1.0        HuaAo       新建类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StockTakeVO extends BaseDTO {

    private static final long serialVersionUID = 7961293456658829916L;

    @ApiModelProperty(value = "盘点ID")
    @TableId(type = IdType.AUTO)
    private java.lang.Long stocktakeId;

    @Excel(name = "盘点单号", width = 15)
    @ApiModelProperty(value = "盘点单号")
    private java.lang.String stocktakeCode;

    @Excel(name = "盘点标题", width = 15)
    @ApiModelProperty(value = "盘点标题", required = true)
    private java.lang.String stocktakeTitle;

    @Excel(name = "盘点类型 0-日常盘点 1-月度盘点 2-季度盘点 3-年终盘点", width = 15)
    @ApiModelProperty(value = "盘点类型 0-日常盘点 1-月度盘点 2-季度盘点 3-年终盘点", required = true)
    private java.lang.Integer stocktakeType;

    @Excel(name = "盘点状态 0-草稿 1-待盘点 2-盘点中 3-盘点结束 4-已完成 5-已取消 6-作废", width = 15)
    @ApiModelProperty(value = "盘点状态 0-草稿 1-待盘点 2-盘点中 3-盘点结束 4-已完成 5-已取消 6-作废")
    private java.lang.Integer stocktakeStatus;

    @ApiModelProperty(value = "发起单位")
    private java.lang.Long belongId;

    @Excel(name = "商品种类", width = 15)
    @ApiModelProperty(value = "商品种类")
    private java.lang.Integer productType;

    @ApiModelProperty(value = "申请人ID")
    private java.lang.Long applyId;

    @ApiModelProperty(value = "申请人所属ID")
    private java.lang.Long applyBelongId;

    @Excel(name = "申请人姓名", width = 15)
    @ApiModelProperty(value = "申请人姓名")
    private java.lang.String applyName;

    @Excel(name = "申请人所属名称", width = 15)
    @ApiModelProperty(value = "申请人所属名称")
    private java.lang.String applyBelongName;

    @Excel(name = "申请时间", width = 20)
    @ApiModelProperty(value = "申请时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date applyTime;

    @Excel(name = "开始时间", width = 20)
    @ApiModelProperty("开始时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date startTime;

    @ApiModelProperty(value = "审核人ID")
    private java.lang.Long auditId;

    @ApiModelProperty(value = "审核人所属ID")
    private java.lang.Long auditBelongId;

    @Excel(name = "审核人姓名", width = 15)
    @ApiModelProperty(value = "审核人姓名")
    private java.lang.String auditName;

    @Excel(name = "审核人所属姓名", width = 15)
    @ApiModelProperty(value = "审核人所属姓名")
    private java.lang.String auditBelongName;

    @Excel(name = "审核时间", width = 20)
    @ApiModelProperty(value = "审核时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date auditTime;

    @Excel(name = "审核状态 0-待审核 1-通过 2-驳回", width = 15)
    @ApiModelProperty(value = "审核状态 0-待审核 1-通过 2-驳回")
    private java.lang.Integer auditStatus;

    @Excel(name = "提交时间", width = 20)
    @ApiModelProperty(value = "提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date commitTime;

    @Excel(name = "驳回原因", width = 15)
    @ApiModelProperty(value = "驳回原因")
    private java.lang.String reason;

    @Excel(name = "盘点备注", width = 15)
    @ApiModelProperty(value = "盘点备注")
    private java.lang.String remark;

    @ApiModelProperty(value = "删除状态 0-未删除 1-已删除")
    private java.lang.Integer delFlag;

    @ApiModelProperty("盘盈数量")
    @Excel(name = "盘盈数量", width = 15)
    private BigDecimal moreAmount;

    @ApiModelProperty("盘亏数量")
    @Excel(name = "盘亏数量", width = 15)
    private BigDecimal lessAmount;

    @ApiModelProperty("父级所属ID")
    private Long parentId;

    @ApiModelProperty("所属单位名称")
    @Excel(name = "所属单位名称", width = 15)
    private String belongName;

    @ApiModelProperty("盘点详情")
    private List<StockTakeInfoDO> infoList;

    @ApiModelProperty("草稿(0-存在 1-不存在)")
    private Integer draftStatus;

    @ApiModelProperty("盘点结果 情况相符-true 盘盈盘亏-false")
    private boolean example;
}